package com.ctyun.xstore.vod.transcode.model;

import com.ctyun.xstore.vod.AbstractVODRequest;

/**
 * 创建转码任务请求类
 */
public class CreateTranscodeTaskRequest extends AbstractVODRequest {

	private String videoId;

	private Boolean useDefaultTranscodeTemplate;

	private Long[] transcodeTemplates;

	private Boolean useDefaultWatermarkTemplate;

	private Long watermarkTemplate;

	private String callback;

	public String getVideoId() {
		return videoId;
	}

	/**
	 * @param videoId 视频的uuid
	 */
	public void setVideoId(String videoId) {
		this.videoId = videoId;
	}

	public Boolean getUseDefaultTranscodeTemplate() {
		return useDefaultTranscodeTemplate;
	}

	/**
	 * @param useDefaultTranscodeTemplate 是否使用默认的转码模板。如果不传入默认为 false
	 */
	public void setUseDefaultTranscodeTemplate(Boolean useDefaultTranscodeTemplate) {
		this.useDefaultTranscodeTemplate = useDefaultTranscodeTemplate;
	}

	public Long[] getTranscodeTemplates() {
		return transcodeTemplates;
	}

	/**
	 * @param transcodeTemplates 只有 useDefaultTranscodeTemplate 为 fasle
	 *                           或者不传入时，该字段才有效。
	 */
	public void setTranscodeTemplates(Long[] transcodeTemplates) {
		this.transcodeTemplates = transcodeTemplates;
	}

	public Boolean getUseDefaultWatermarkTemplate() {
		return useDefaultWatermarkTemplate;
	}

	/**
	 * @param useDefaultWatermarkTemplate 是否使用水印默认模板，如果不填写默认为 false
	 */
	public void setUseDefaultWatermarkTemplate(Boolean useDefaultWatermarkTemplate) {
		this.useDefaultWatermarkTemplate = useDefaultWatermarkTemplate;
	}

	public Long getWatermarkTemplate() {
		return watermarkTemplate;
	}

	/**
	 * @param watermarkTemplate 只有 userDefaultWatermarkTemplate 为 false
	 *                          或者不传入才有效；watermarkTemplate 也不传入时表示不使用水印
	 */
	public void setWatermarkTemplate(Long watermarkTemplate) {
		this.watermarkTemplate = watermarkTemplate;
	}

	public String getCallback() {
		return callback;
	}

	/**
	 * @param callback 任务结束之后将回调到该地址告知任务状态，可不填；回调消息为Json：
	 *                 {
	 *                 "code": "",
	 *                 "message": "",
	 *                 "data":
	 *                 {
	 *                 "taskId": "gz000001",
	 *                 "videoId": "34c71dba-f280-4f5e-a05f-f4daed837fef",
	 *                 "status": "DONE",
	 *                 "transcodeTemplateId": "10001",
	 *                 "watermarkTemplate": "10001",
	 *                 "url": "http://path.to.transcode/video/file.mp4"
	 *                 }
	 *                 }
	 */
	public void setCallback(String callback) {
		this.callback = callback;
	}

	@Override
	protected String getPath() {
		return "/task/submit";
	}
}
